When a device is in a low-power state, device hardware components such as radio chipsets may be powered off or put in a reduced power state. In a low-power state, it can be difficult to properly manage network connectivity to avoid unnecessary power usage. A network policy that is too stringent may result in high priority applications, such as background updating or Voice over IP (VoIP) calling, being unable to reliably operate. A network policy that is too liberal may mean that applications continue to transmit non-critical data, thereby using power unnecessarily. Some solutions exist to handle these issues. Microsoft® InstantGo (formerly known as Connected Standby) capable hardware and software have been integrated into common interfaces and integrated with operating system networking stacks and Application Programming Interfaces (APIs). Central notification services (such as the Windows® Notification Service) have been implemented and deployed to synchronize network connectivity for multiple applications during low power scenarios. Also, connection managers consider the costs of network connectivity when activating network connections or selecting between available networks.
In Connected Standby, the network communications hardware, such as a mobile broadband or Wi-Fi chipset, maintains its connection to a network in a lower power state, and if it becomes disconnected, searches for and connects to known networks. While in Connected Standby, the device—including the processor, e.g., the system on a chip (SoC)—is also in a lower power state (e.g., a connected-sleep state). Pattern-match wake is a feature used in conjunction with Connected Standby that allows the operating system to configure the network communications hardware to wake the device when the network communications hardware (e.g., WiFi) detects a pattern that matches the stored pattern. All other packets are ignored. When a packet with a matching pattern is detected, the network communications hardware sends an interrupt to the SoC to wake it up. This packet is then passed to the application that was listening and that application is able to quickly act on the data (e.g. receive a VoIP phone call).